package com.example.vote.flow.pojo.param;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

@Data
@Schema(description = "创建投票主题参数Class")
public class VoteTopicCreateParam implements Serializable {

    @Schema(description = "标题", example = "为你最喜欢的编程语言投一票吧", requiredMode = Schema.RequiredMode.REQUIRED)
    private String title;

    @Schema(description = "描述", example = "请为以下编程语言投票，并选择最喜欢编程语言。", requiredMode = Schema.RequiredMode.REQUIRED)
    private String description;

    @Schema(description = "开始时间（yyyy-MM-dd HH:mm:ss）", example = "2025-01-01 00:00:00", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime startTime;

    @Schema(description = "结束时间（yyyy-MM-dd HH:mm:ss）", example = "2026-01-01 00:00:00", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime endTime;

    @Schema(description = "是否允许选项图片，0=不允许，1=允许", example = "1", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer allowOptionImage;

    @Schema(description = "每个用户最大投票数", example = "10", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer maxVotesPerUser;

    @Schema(description = "每个用户每天最大投票数", example = "1", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer maxVotesPerUserPerDay;

    @Schema(description = "每个IP最大投票数", example = "100", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer maxVotesPerIp;

}